///******************************************************************************* // * Copyright (c) 2000, 2007 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // *******************************************************************************/ //package org.eclipse.ui.tests.zoom; // //import junit.framework.Assert; // //import org.eclipse.core.resources.IFile; //import org.eclipse.core.resources.IProject; //import org.eclipse.core.runtime.CoreException; //import org.eclipse.jface.preference.IPreferenceStore; //import org.eclipse.swt.SWT; //import org.eclipse.ui.IEditorPart; //import org.eclipse.ui.IViewPart; //import org.eclipse.ui.IViewReference; //import org.eclipse.ui.IWorkbenchPart; //import org.eclipse.ui.IWorkbenchPreferenceConstants; //import org.eclipse.ui.PartInitException; //import org.eclipse.ui.ide.IDE; //import org.eclipse.ui.internal.IPreferenceConstants; //import org.eclipse.ui.internal.PartPane; //import org.eclipse.ui.internal.PartSite; //import org.eclipse.ui.internal.WorkbenchPage; //import org.eclipse.ui.internal.WorkbenchPlugin; //import org.eclipse.ui.internal.WorkbenchWindow; //import org.eclipse.ui.internal.util.PrefUtil; //import org.eclipse.ui.internal.util.Util; //import org.eclipse.ui.part.FileEditorInput; //import org.eclipse.ui.tests.api.MockEditorPart; //import org.eclipse.ui.tests.dnd.DragOperations; //import org.eclipse.ui.tests.dnd.EditorAreaDropTarget; //import org.eclipse.ui.tests.dnd.ExistingWindowProvider; //import org.eclipse.ui.tests.harness.util.FileUtil; //import org.eclipse.ui.tests.harness.util.UITestCase; // //public class ZoomTestCase extends UITestCase { //// protected static final String view1Id = IPageLayout.ID_RES_NAV; //// //// protected static final String view2Id = IPageLayout.ID_OUTLINE; // // protected WorkbenchWindow window; // // protected WorkbenchPage page; // // protected IProject project; // // protected IFile file1, file2; // // protected IEditorPart editor1, editor2, editor3; // // protected IViewPart stackedView1; // protected IViewPart stackedView2; // protected IViewPart unstackedView; // protected IViewPart fastView; // // private IFile file3; // // // Remember the actual value of the 'useMinMax' state // // so that 'tearDown' can restore it // private boolean oldMinMaxState; // // public ZoomTestCase(String name) { // super(name); // } // // /* (non-Javadoc) // * @see org.eclipse.ui.tests.util.UITestCase#doTearDown() // */ // protected void doTearDown() throws Exception { // page.testInvariants(); // // super.doTearDown(); // // IPreferenceStore apiStore = PrefUtil.getAPIPreferenceStore(); // apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, oldMinMaxState); // } // // protected void doSetUp() throws Exception { // // These tests are hard-wired to the pre-3.3 zoom behaviour // // Run them anyway to ensure that we preserve the 3.0 mechanism // IPreferenceStore apiStore = PrefUtil.getAPIPreferenceStore(); // oldMinMaxState = apiStore.getBoolean(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX); // // super.doSetUp(); // // window = (WorkbenchWindow) openTestWindow(ZoomPerspectiveFactory.PERSP_ID); // page = (WorkbenchPage) window.getActivePage(); // // // Disable animations since they occur concurrently and can interferre // // with locating drop targets // apiStore.setValue( // IWorkbenchPreferenceConstants.ENABLE_ANIMATIONS, // false); // // // These tests are hard-wired to the pre-3.3 zoom behaviour // // Run them anyway to ensure that we preserve the 3.0 mechanism // oldMinMaxState = apiStore.getBoolean(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX); // // apiStore.setValue(IWorkbenchPreferenceConstants.ENABLE_NEW_MIN_MAX, false); // // try { // project = FileUtil.createProject("IEditorPartTest"); //$NON-NLS-1$ // file1 = FileUtil.createFile("Test1.txt", project); //$NON-NLS-1$ // file2 = FileUtil.createFile("Test2.txt", project); //$NON-NLS-1$ // file3 = FileUtil.createFile("Test3.txt", project); //$NON-NLS-1$ // editor1 = page.openEditor(new FileEditorInput(file1), // MockEditorPart.ID1); // editor2 = page.openEditor(new FileEditorInput(file2), // MockEditorPart.ID2); // editor3 = page.openEditor(new FileEditorInput(file3), // MockEditorPart.ID2); // // DragOperations // .drag(editor3, new EditorAreaDropTarget(new ExistingWindowProvider(window), SWT.RIGHT), false); // } catch (PartInitException e) { // } catch (CoreException e) { // } // // stackedView1 = findView(ZoomPerspectiveFactory.STACK1_VIEW1); // stackedView2 = findView(ZoomPerspectiveFactory.STACK1_VIEW2); // unstackedView = findView(ZoomPerspectiveFactory.UNSTACKED_VIEW1); // fastView = findView(ZoomPerspectiveFactory.FASTVIEW1); // } // // // zooms the given part // protected void zoom(IWorkbenchPart part) { // if (part == null) // throw new NullPointerException(); // page.activate(part); // page.toggleZoom(page.getReference(part)); // Assert.assertTrue(page.isZoomed()); // Assert.assertTrue(isZoomed(part)); // } // // // open the given file in an editor // protected void openEditor(IFile file, boolean activate) { // try { // if (file == file1) // editor1 = IDE.openEditor(page, file, activate); // if (file == file2) // editor2 = IDE.openEditor(page, file, activate); // } catch (PartInitException e) { // } // } // // protected IViewPart findView(String id) { // IViewPart view = page.findView(id); // assertNotNull("View " + id + " not found", view); // return view; // } // // // show the given view as a regular view // protected IViewPart showRegularView(String id, int mode) { // try { // IViewPart view = page.showView(id, null, mode); // IViewReference ref = (IViewReference) page.getReference(view); // if (page.isFastView(ref)) // page.removeFastView(ref); // return view; // } catch (PartInitException e) { // } // return null; // } // // // show the given view // protected IViewPart showFastView(String id) { // try { // IPreferenceStore store = WorkbenchPlugin.getDefault().getPreferenceStore(); // // int oldMode = store.getInt(IPreferenceConstants.OPEN_VIEW_MODE); // store.setValue(IPreferenceConstants.OPEN_VIEW_MODE, IPreferenceConstants.OVM_FAST); // // IViewPart view = page.showView(id); // IViewReference ref = (IViewReference) page.getReference(view); // page.addFastView(ref); // Assert.assertTrue(page.isFastView(ref)); // store.setValue(IPreferenceConstants.OPEN_VIEW_MODE, oldMode); // return view; // } catch (PartInitException e) { // } // return null; // } // // // returns whether this part is zoomed // protected boolean isZoomed(IWorkbenchPart part) { // PartSite site = (PartSite) part.getSite(); // PartPane pane = site.getPane(); // // return pane.isZoomed(); // } // // /** // * Asserts that the given part is zoomed. If the part is null, asserts // * that no parts are zoomed. // * // * @param part // * @since 3.1 // */ // protected void assertZoomed(IWorkbenchPart part) { // if (part == null) { // Assert.assertFalse("Page should not be zoomed", isZoomed()); // } else { // // Assert that the part is zoomed // Assert.assertTrue("Expecting " + partName(part) + " to be zoomed", isZoomed(part)); // // Assert that the page is zoomed (paranoia check) // Assert.assertTrue("Page should be zoomed", isZoomed()); // } // } // // /** // * Asserts that the given part is active. // * // * @param part // * @since 3.1 // */ // protected void assertActive(IWorkbenchPart part) { // IWorkbenchPart activePart = page.getActivePart(); // // // Assert that the part is active // Assert.assertTrue("Unexpected active part: expected " + partName(part) // + " and found " + partName(activePart), activePart == part); // // // If the part is an editor, assert that the editor is active // if (part instanceof IEditorPart) { // assertActiveEditor((IEditorPart)part); // } // } // // protected String partName(IWorkbenchPart part) { // if (part == null) { // return "null"; // } // // return Util.safeString(part.getTitle()); // } // // protected void assertActiveEditor(IEditorPart part) { // IWorkbenchPart activeEditor = page.getActiveEditor(); // // Assert.assertTrue("Unexpected active editor: expected " + partName(part) // + " and found " + partName(activeEditor), activeEditor == part); // } // // // returns true if the page is not zoomed, false otherwise // protected boolean isZoomed() { // return page.isZoomed(); // } // // public void close(IWorkbenchPart part) { // if (part instanceof IViewPart) { // page.hideView((IViewPart)part); // } else if (part instanceof IEditorPart) { // page.closeEditor((IEditorPart)part, false); // } // } //}